<?php

/**
 * Subclass for representing a row from the 'taller' table.
 *
 * 
 *
 * @package lib.model
 */ 
class Taller extends BaseTaller
{
	
 public $nomInvitado='';
 public $criteriaTalleresSinInscribir= null;

  function getNomInvitado()
     {
       if ($this->nomInvitado=='')
         {
           $objDatoPer       = $this->getInvitado()->getDatoPersonal();
          //$objDatoPer        = $objInvitado->getDatoPersonal();
           $this->nomInvitado = $objDatoPer->getNombreCompleto();
         }
      return  $this->nomInvitado;
     }

/* public function __toString()
    {
		return $this->getNombTaller();
    }*/	

	public function __toString()
	{
		 $objTallerSesion = TallerSesionPeer::retrieveByPk($this->getId());
		 $cupos = $objTallerSesion->getCupos();
		 $lugar = $objTallerSesion->getLugar();
		 $fecha = $objTallerSesion->getFechaInicio();
		 $hora = $objTallerSesion->getHoraInicio();
         $c2 = new Criteria();
         $c2->add(SolicitudTallerPeer::TALLER_ID,$this->getId());
         $inscritos = SolicitudTallerPeer::doCount($c2);
         if ($inscritos < $cupos)
         {
         	$cuposDisp = $cupos - $inscritos;
		 	return $this->getNombTaller().'	--- Lugar: '.$lugar.' -- Inicio: '.$fecha.' -- Hora: '.$hora.' -- Cupos disponibles: '.$cuposDisp;
         }
         else
         {
         	return $this->getNombTaller().' --- No hay cupos disponibles';
         }
	}


	public function getCriteriaTalleresSinInscribir($idUsuario)
	{
		if ($this->criteriaTalleresSinInscribir == null)
		{
			$fechaHoy = date('Y-m-d');
			$c = new Criteria();
			$c->add(SolicitudTallerPeer::USUARIO_ID,$idUsuario);
			$c->addJoin(SolicitudTallerPeer::TALLER_ID, TallerPeer::ID);
			$talleresInscritos = TallerPeer::doSelect($c);
			$ids = array();
			$i = 0;
			foreach ($talleresInscritos as $registro)
         	{
         		$ids[$i] = $registro->getId();
				$i++;
          	}

          	$c2 = new Criteria();
			$c2->add(TallerSesionPeer::FECHA_FINAL, $fechaHoy, Criteria::GREATER_THAN);
			$c2->addJoin(TallerSesionPeer::TALLER_ID,TallerPeer::ID);
			$c2->add(TallerPeer::ID, $ids , Criteria::NOT_IN);
		    $c2->addAscendingOrderByColumn(TallerPeer::NOMB_TALLER);
		    $this->criteriaTalleresSinInscribir = $c2;

		}
		return $this->criteriaTalleresSinInscribir;
	}
	
	
	
	
function getActEstatus()
	{
	
		$c= new Criteria();
	   	$c->addjoin(TallerSesionPeer::TALLER_ID,TallerPeer::ID);
       	$objtallerD= TallerSesionPeer::doSelect($c);
	   	
		$fecha=date('Y-m-d');
      	
      	//$objtaller =TallerPeer::doSelect($c);
        	
       	if ($objtallerD!=null)
       	{
        	foreach($objtallerD as $regt)
        	 	{
        	       if($regt->getFechaInicio()>$fecha)
            	    {
            	    	//echo ($regtaller->getFecha());
            	    	$regt->setStatus('P');
            	   		$regt->save();
            	   		
            	    }
            	    else
            	    	{
            	    		$regt->setStatus('D');
            	    		$regt->save();
            	    	    
            	    	}
            	    
        	 	}
	
           
        	}
	}

	
	
	function getEstadoT()
	{
		if ($this->estadot!=='')
		{
			if ($this->getStatus()=='p')
			{
				$this->estadot = 'p';
			
			}
			else
			{
				$this->estadot = 'd';
			}
		}
		return $this->estadot;
	}
 
	function getFechaT()
	{
		
        	$c= new Criteria();
        	$c->add(TallerSesionPeer::TALLER_ID,$this->id);
        	$objtallerD= TallerSesionPeer::doSelect($c);
        	
        	//$ubicacion= $objdptoori->getUbicacion();
        //	return $ubicacion; //dice q el no puede llamar al metodo getubicacion on non-obj;
            foreach($objtallerD as $regdec)
            {
            	echo trim($regdec->getFechaInicio());
            }       
             
       }
        
       
function getFechaF()
	{
		
        	$c= new Criteria();
        	$c->add(TallerSesionPeer::TALLER_ID,$this->id);
        	$objtallerD= TallerSesionPeer::doSelect($c);
        	
        	//$ubicacion= $objdptoori->getUbicacion();
        //	return $ubicacion; //dice q el no puede llamar al metodo getubicacion on non-obj;
            foreach($objtallerD as $regdec)
            {
            	echo trim($regdec->getFechaFinal());
            }       
             
       }
	
	
function getNumHorasT()
	{
		$c= new Criteria();
        	$c->add(TallerSesionPeer::TALLER_ID,$this->id);
        	$objtallerD= TallerSesionPeer::doSelect($c);
        	
        	//$ubicacion= $objdptoori->getUbicacion();
        //	return $ubicacion; //dice q el no puede llamar al metodo getubicacion on non-obj;
            foreach($objtallerD as $regdec)
            {
            	echo trim($regdec->getNumHoras());
            }       
       
        
	}
	
	
function getLugarT()
	{
		$c= new Criteria();
        	$c->add(TallerSesionPeer::TALLER_ID,$this->id);
        	$objtallerD= TallerSesionPeer::doSelect($c);
        	
        	//$ubicacion= $objdptoori->getUbicacion();
        //return $ubicacion; //dice q el no puede llamar al metodo getubicacion on non-obj;
            foreach($objtallerD as $regdec)
          {
            	echo trim($regdec->getLugar());
          }       
             
        
	}
	
	function getCuposT()
	{
		
        	$c= new Criteria();
        	$c->add(TallerSesionPeer::TALLER_ID,$this->id);
        	$objtallerD= TallerSesionPeer::doSelect($c);
        	
        	//$ubicacion= $objdptoori->getUbicacion();
        //	return $ubicacion; //dice q el no puede llamar al metodo getubicacion on non-obj;
            foreach($objtallerD as $regdec)
           {
            	echo trim($regdec->getCupos());
          }       
             
        
	}
	

	
	
	

}
